Skip to content

fix: remove postinstall chmod that breaks Windows npm install - #612

Closed
chrille0313 wants to merge 1 commit into
pgflow-dev:mainfrom
chrille0313:fix/windows-postinstall
Closed

fix: remove postinstall chmod that breaks Windows npm install#612
chrille0313 wants to merge 1 commit into
pgflow-dev:mainfrom
chrille0313:fix/windows-postinstall

Conversation

@chrille0313

Copy link
Copy Markdown

npm automatically sets the executable bit on files declared in the bin field when installing a package, making the chmod +x in postinstall redundant. The script also broke on Windows since chmod and true are not available in cmd.exe.

Closes #610

npm automatically sets the executable bit on files declared in the
`bin` field when installing a package, making the `chmod +x` in
postinstall redundant. The script also broke on Windows since `chmod`
and `true` are not available in cmd.exe.

Closes pgflow-dev#610
@changeset-bot

changeset-bot Bot commented Feb 17, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 104ca29

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

jumski added a commit that referenced this pull request Sep 4, 2026
## Summary

- The `pgflow` package's `postinstall` ran `chmod +x dist/index.js || true`. `chmod` and `true` do not exist in Windows cmd.exe, so `npm install pgflow` and `npx pgflow@latest install` failed with `'chmod' is not recognized as an internal or external command`.
- npm sets the executable bit on files declared in the `bin` field during install, so the script was redundant even on Unix. Removal is the whole fix.
- Adds a permanent `windows-latest` smoke workflow as the regression test: build the CLI, `pnpm pack`, install the tarball into a clean directory with lifecycle scripts enabled, run the npm-created `pgflow.cmd --version` shim. The rest of CI runs on Ubuntu and invokes `node dist/index.js` directly, so npm installation and Windows shims were never exercised.
- One `pgflow` patch changeset for the 0.15.1 release group (#666).
- Recreates the minimal removal from #612 against current `main` (#612 was based on v0.13.3).

## Checks

- `pnpm nx build cli` — pass
- `pnpm pack` in `pkgs/cli` — tarball contains `dist/`, no `postinstall` in its `package.json`
- CLI unit tests — 43/43 pass
- `prettier --check` on all three touched files — pass
- Windows smoke job runs in this PR's CI

Closes #610
@jumski

jumski commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

closed by #669

@jumski jumski closed this Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: postinstall script fails on Windows

2 participants